async def METHOD_NAME(self, name: str, project_id: Optional[uuid.UUID]) -> model.Project:
    if project_id is None:
        project_id = uuid.uuid4()
    try:
        project = data.Project(id=project_id, name=name)
        await project.insert()
    except asyncpg.exceptions.UniqueViolationError:
        raise ServerError(f"A project with name {name} already exists.")
    return project.to_dto()