I just verified that this image is correct with an activity as follows:
1. Set properties on OperatorID
Set .pyLabel to "first label"
2. Obj-Save on OperatorID
3. Set properties on OperatorID
Set .pyLabel to "second label"
Set .pyDescription to "new description"
4. Obj-Save with write now on OperatorID
Why? It's important to understand that the OperatorID page IS saved in step 4. That save to the database happens first. However, the Obj-Save in step 2 is put into a queue which is only emptied when a "Commit" is called. So, when Commit happens a message goes out saying: "send all outstanding requests to the database" which will overwrite the successfull obj save on step 4. Interestingly, at the end of this pyDescription is not "new description." It is whatever it was during step 2.