Another comment -- not sure if the commit_manually should be within the other wrappers, or on the outside.  If progress is called without a login right now, would it raise an exception that would cause the transaction to fail?  Might need to have the transaction decorator on the inside.