def METHOD_NAME(self, identity, data, uow=None):
    """Create a new OAI set."""
    self.require_permission(identity, "create")
    valid_data, errors = self.schema.load(
        data,
        context={"identity": identity},
        raise_errors=True,
    )
    self._validate_spec(valid_data["spec"])
    system_created = valid_data["spec"].startswith(tuple(self.reserved_prefixes))
    new_set = OAISet(**valid_data, system_created=system_created)
    existing_set, errors = self._get_one(spec=new_set.spec, raise_error=False)
    if existing_set:
        raise OAIPMHSetSpecAlreadyExistsError(new_set.spec)
    uow.register(OAISetCommitOp(new_set))
    return self.result_item(
        service=self,
        identity=identity,
        item=new_set,
        links_tpl=self.links_item_tpl,
    )