docs: def commit(self, **kwargs):
          r"""Store changes of the current record instance in the database.
  
          #. Send a signal :data:`invenio_records.signals.before_record_update`
             with the current record to be committed as parameter.
  
          #. Validate the current record data.
  
          #. Commit the current record in the database.
  
          #. Send a signal :data:`invenio_records.signals.after_record_update`
              with the committed record as parameter.
  
          :Keyword Arguments:
            * **format_checker** --
              An instance of the class :class:`jsonschema.FormatChecker`, which
              contains validation rules for formats. See
              :func:`~invenio_records.api.RecordBase.validate` for more details.
  
            * **validator** --
              A :class:`jsonschema.IValidator` class that will be used to
              validate the record. See
              :func:`~invenio_records.api.RecordBase.validate` for more details.
  
          :returns: The :class:`Record` instance.
          """
          if self.model is None or self.model.json is None:
              raise MissingModelError()
  
          with db.session.begin_nested():
              before_record_update.send(
                  current_app._get_current_object(),
                  record=self
              )
  
              self.validate(**kwargs)
  
              self.model.json = dict(self)
              flag_modified(self.model, 'json')
  
              db.session.merge(self.model)
  
          after_record_update.send(
              current_app._get_current_object(),
              record=self
          )
          return self