docs: def merge_multipartobject(upload_id, version_id=None):
      """Merge multipart object.
  
      :param upload_id: The :class:`invenio_files_rest.models.MultipartObject`
          upload ID.
      :param version_id: Optionally you can define which file version.
          (Default: ``None``)
      :returns: The :class:`invenio_files_rest.models.ObjectVersion` version
          ID.
      """
      mp = MultipartObject.query.filter_by(upload_id=upload_id).one_or_none()
      if not mp:
          raise RuntimeError('Upload ID does not exists.')
      if not mp.completed:
          raise RuntimeError('MultipartObject is not completed.')
  
      try:
          obj = mp.merge_parts(
              version_id=version_id,
              progress_callback=progress_updater
          )
          db.session.commit()
          return str(obj.version_id)
      except Exception:
          db.session.rollback()
          raise