Я в итоге остановился просто на том, что использую один класс, который умеет делать нужные действия с базой, обеспечивая интерфейс в терминах бизнес-логики. Делать это из самих объектов с данными — странная идея, как по мне.
Понадобится вам метрики по скорости ответа базы писать и куда вы их запихнёте? Не оборачивать же каждое использование в with Timer, код получается нечитаемый.
Даже более того, любое действие с этими объектами нужно будет оборачивать в try except, потому что там под капотом сетевые операции.
Я знаю, что есть довольно много любителей ORM и даже сам таким был, но уж очень много с ними геморроя, когда нужно сделать что-то хоть чуть-чуть не так, как предложено. Они тут же из удобного инструмента превращаются в агрессивного ежа с ядовитыми иглами.