これは、ピラミッドでzodbトランザクションマネージャーを使用しているようです。
セッションを変更済みとしてマークする必要があります
のようなことをする必要があります
from zope.sqlalchemy import mark_changed
mark_changed(Session)
それがうまくいかない場合は試してみてください
from zope.sqlalchemy import ZopeTransactionExtension
Session.configure(extension=ZopeTransactionExtension('changed'))