EDIT: I don't believe I really answered your question. Setting save_best_only to False is supposed to let the model save after every specified epoch - this does not currently work. Save_weights_only means it only saves the weights and not the full model. You would have to first define the model then load the weights if you do this. If False, you could load the model with having to redefine it.
Yes, I believe this is a bug with Tensorflow. There was an open issue about this on the GitHub repo for Tensorflow, but I don't remember the link to the page. Effectively, is you do as you said, Tensorflow will still only save the model if there is an improvement in neural networks performance. Furthermore, passing "epochs" selects how many times the neural network's performance needs to improve before saving the weights.
One theoretical work around is to create your own Callback to save after every n epoch. It is not difficult to do. Here is the documentation.
Some really rough psuedo code:
class SaveAtEpoch(keras.callbacks.Callback):
def __init__(self, save_frequency,filepath):
super(SaveAtEpoch,self).__init__
self.save_frequency = save_frequency
self.filepath = filepath
def on_epoch_end(self, epoch, logs=None):
if epoch%self.frequency == 0:
self.model.save(self.filepath)