Wie interagiert die Methode dict update in SQLAlchemy mit dem ORM?

So hatte ich eine SQLAlchemy-Tabelle mit einer JSON-Spalte:

from sqlalchemy.dialects.postgresql import JSON
class MyTable(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    my_json_column = db.Column(JSON)

Und ich habe versucht, die Spalte mit dem @ zu aktualisierdict#update Methode wie folgt:

def foo(my_object, new_params):
    my_object.my_json_column.update(new_params)
    db.session.commit()

Das hat aber nicht funktioniert. Bearbeiten:Was ich damit gemeint habe ist, dass die Updates nicht in der Datenbank gespeichert wurden.

Was hat funktioniert, war das:

def foo(my_object, new_params):
    temp_params = my_object.my_json_column.copy()
    temp_params.update(new_params)
    my_object.my_json_column = new_params
    db.session.commit()

Ich vermute, es hat etwas mit "Unveränderlichkeit" zu tun, oder der ORM bemerkt Änderungen nur bei direkter Zuordnung oder so. Weiß jemand genau warum?