I needed to set the JSON column as a mutable.
the updated model would be:
class Organization(SQLModel, table=True):
__tablename__ = "organizations"
id: int | None = Field(default=None, primary_key=True)
name: str = Field()
meta: dict = Field(sa_type=MutableDict.as_mutable(JSON))
ref: section on "Detecting Changes in JSON columns when using the ORM" in the sqlalchemy docs