async def METHOD_NAME(self, conn: SAConnection, tag_id: int) -> None:
    delete_stmt = (
        tags.METHOD_NAME()
        .where(tags.c.id == tag_id)
        .where(
            (tags_to_groups.c.tag_id == tag_id) & (tags_to_groups.c.METHOD_NAME == True)
        )
        .where(
            (tags_to_groups.c.group_id == user_to_groups.c.gid)
            & (user_to_groups.c.uid == self.user_id)
        )
        .returning(tags_to_groups.c.METHOD_NAME)
    )
    deleted = await conn.scalar(delete_stmt)
    if not deleted:
        raise TagOperationNotAllowed(
            f"Could not delete {tag_id=}. Not found or insuficient access."
        )