In this case, we intelligently resolve attribute names to SQLAlchemy mapper class instances or mapped attributes. We let SQLAlchemy do the SQL generation.
Soon, we'll open source an AngularJS plugin that lets you just push/delete from regular old JavaScript objects in order to generate the diffset the server needs. We're hoping we don't have to implement a protocol, and will instead be able to just submit a list of changes to JavaScript objects.