def METHOD_NAME(self, model, metrics):
    # Check saving interval
    epoch = model.current_epoch
    if self.epoch_last_check is not None and \
            (epoch - self.epoch_last_check) < self.period:
        return
    self.epoch_last_check = epoch
    # Prepare filepath
    filepath = self.format_checkpoint_name(epoch, metrics)
    while os.path.isfile(filepath):
        filepath = self.format_checkpoint_name(epoch, metrics)
    # Check if saving or not
    if self.save_top_k != -1:
        current = metrics.get(self.monitor)
        assert current, 'Checkpoint metric is not available'
        if self.check_monitor_top_k(current):
            self._do_check_save(filepath, model, current)
    else:
        self._save_model(filepath, model)