def METHOD_NAME(  # pylint: disable=too-many-arguments
    cls, session, claimant_uri, uris, created=None, updated=None
):
    """
    Find or create documents from a claimant uri and a list of uris.
    It tries to find a document based on the claimant and the set of uris.
    If none can be found it will return a new document with the claimant
    uri as its only document uri as a self-claim. It is the callers
    responsibility to create any other document uris.
    """
    finduris = [claimant_uri] + uris
    documents = cls.find_by_uris(session, finduris)
    if not documents.count():
        doc = Document(created=created, updated=updated)
        DocumentURI(
            document=doc,
            claimant=claimant_uri,
            uri=claimant_uri,
            type="self-claim",
            created=created,
            updated=updated,
        )
        session.add(doc)
    try:
        session.flush()
    except sa.exc.IntegrityError as err:
        raise ConcurrentUpdateError("concurrent document creation") from err
    return documents