Il semble que vous utilisiez le gestionnaire de transactions zodb dans la pyramide.
Vous devez marquer la session comme modifiée
Vous devriez faire quelque chose comme
from zope.sqlalchemy import mark_changed
mark_changed(Session)
si cela ne fonctionne pas, essayez
from zope.sqlalchemy import ZopeTransactionExtension
Session.configure(extension=ZopeTransactionExtension('changed'))