I've found the Django ORM to be, in my own opinion, one of the easiest ORMs to hit the ground running with. What was the confusing aspect of updating relational data for you?
Actually writing the the tables was very freeing, no more separation and surprises in the translation between a single model and the multiple tables it can create.
For each new object, we wrote a SQLAlchemy Table object, a domain entity object, and optionally an adapter if you need to map field names between the two. The 300 lines of repo library code did the rest.
A little boilerplate, but no need for a ton of impenetrable, hyper-dynamic ORM code.
Alembic can autogenerate migrations from the SQLALchemy Table objects