El problema es que los atributos keys y values son métodos de la colección de columnas inmutables sq_objects.c . Otra solución al problema es utilizar la notación de acceso a elementos para obtener las columnas reales:
func.jsonb_object_agg(
sq_objects.c["keys"],
sq_objects.c["values"]
).over(
partition_by=sq_objects.c.object_id
).label("attributes")