code: def register(self):
          
          if self.is_registered() or self.is_deleted() or self.is_redirected():
              raise PIDInvalidAction(
                  "Persistent identifier has already been registered"
                  " or is deleted.")
  
          try:
              with db.session.begin_nested():
                  self.status = PIDStatus.REGISTERED
                  db.session.add(self)
          except SQLAlchemyError:
              logger.exception("Failed to register PID.", extra=dict(pid=self))
              raise
          logger.info("Registered PID.", extra=dict(pid=self))
          return True
docs: Register the persistent identifier with the provider.
  
          :raises invenio_pidstore.errors.PIDInvalidAction: If the PID is not
              already registered or is deleted or is a redirection to another
              PID.
          :returns: `True` if the PID is successfully register.