@event.listens_for(cls, 'before_update')
def before_udpate(mapper, connection, target):
    state = db.inspect(target)
changes = {}
for attr in state.attrs:
    hist = state.get_history(attr.key, True)
if not hist.has_changes():
    continue
changes[attr.key] = hist.added
Отслеживание изменений модели в SQLAlchemy