SQLAlchemy não tenta definir o campo porque acha que o valor não foi alterado.
Você pode dizer ao SQLAlchemy para reatribuir o valor especificando o atributo onupdate na coluna:
Column('timestamp', ..., onupdate=literal_column('timestamp'))
Isso resultará no SQLAlchemy adicionando automaticamente
timestamp=timestamp
a todas as consultas de atualização. Se você precisar fazer isso uma vez em uma instância, poderá atribuir a coluna a ela:
foo.timestamp = literal_column('timestamp')
# or
foo.timestamp = foo_tbl.c.timestamp