async def METHOD_NAME(
    conn: triopg._triopg.TrioConnectionProxy,
    organization_id: OrganizationID,
    author: DeviceID,
    realm_id: RealmID,
    encryption_revision: int | None,
    timestamp: DateTime,
) -> None:
    await _check_realm(
        conn, organization_id, realm_id, encryption_revision, OperationKind.DATA_WRITE
    )
    can_write_roles = (RealmRole.OWNER, RealmRole.MANAGER, RealmRole.CONTRIBUTOR)
    last_role_granted_on = await _check_realm_access(
        conn, organization_id, realm_id, author, can_write_roles
    )
    # Write operations should always occurs strictly after the last change of role for this user
    if last_role_granted_on >= timestamp:
        raise VlobRequireGreaterTimestampError(last_role_granted_on)