docs: def update(self, url, doc):
          """Update metadata associated with a DOI.
  
          This can be called before/after a DOI is registered.
  
          :param doc: Set metadata for DOI.
          :returns: `True` if is updated successfully.
          """
          if self.pid.is_deleted():
              logger.info("Reactivate in DataCite",
                          extra=dict(pid=self.pid))
  
          try:
              # Set metadata
              self.api.metadata_post(doc)
              self.api.doi_post(self.pid.pid_value, url)
          except (DataCiteError, HttpError):
              logger.exception("Failed to update in DataCite",
                               extra=dict(pid=self.pid))
              raise
  
          if self.pid.is_deleted():
              self.pid.sync_status(PIDStatus.REGISTERED)
          logger.info("Successfully updated in DataCite",
                      extra=dict(pid=self.pid))
          return True