def METHOD_NAME(self, record, identifier=None, provider=None, **kwargs):
    """Validate the attributes of the identifier.
    :returns: A tuple (success, errors). `success` is a bool that specifies
              if the validation was successful. `errors` is a list of
              error dicts of the form:
              `{"field": <field>, "messages: ["<msgA1>", ...]}`.
    """
    if provider and provider != self.name:
        current_app.logger.error(
            "Configuration error: provider "
            f"name {provider} does not match "
            f"{self.name}."
        )
        raise  # configuration error
    # deduplication check
    try:
        pid = self.get(pid_value=identifier)
        if pid.object_uuid != record.id:
            current_app.logger.warning(
                f"PID {self.pid_type}:{identifier} already exists"
            )
            return False, [
                # Note that this uses self.pid_type which is not dynamically
                # assigned from config.py::RDM_PERSISTENT_IDENTIFIERS, so there
                # may come a time where there is a mismatch between the two.
                {
                    "field": f"pids.{self.pid_type}",
                    "messages": [
                        _("{pid_type}:{identifier} already exists.").format(
                            pid_type=self.pid_type, identifier=identifier
                        )
                    ],
                }
            ]
    except PIDDoesNotExistError:
        pass
    return True, []