def METHOD_NAME(self, data: dict) -> Annotation:
    """
    Create an annotation from already-validated data.
    :param data: Annotation data that has already been validated by
        `h.schemas.annotation.CreateAnnotationSchema`
    """
    # Set the group to be the same as the root annotation
    if references := data["references"]:
        if root_annotation := self._annotation_read_service.get_annotation_by_id(
            references[0]
        ):
            data["groupid"] = root_annotation.groupid
        else:
            raise ValidationError(
                "references.0: "
                + _("Annotation {id} does not exist").format(id=references[0])
            )
    document_data = data.pop("document", {})
    annotation = Annotation(**data)
    # Enable relationship loading, so we can access
    # the group, even though we've not added this to the session yet
    self._db.enable_relationship_loading(annotation)
    self._validate_group(annotation)
    annotation.created = annotation.updated = datetime.utcnow()
    annotation.document = update_document_metadata(
        self._db,
        annotation.target_uri,
        document_data["document_meta_dicts"],
        document_data["document_uri_dicts"],
        created=annotation.created,
        updated=annotation.updated,
    )
    self._db.add(annotation)
    self._db.flush()
    self._search_index_service._queue.add_by_id(  # pylint: disable=protected-access
        annotation.id, tag="storage.create_annotation", schedule_in=60
    )
    return annotation