first, here is what is said in Pymongo Documentation
By default, PyMongo starts a request for each thread when the thread first runs an operation on Mong
I'm the author of Motor and I know a bit about AsyncMongo too. Here's Motor's documentation regarding safe writes:
http://emptysquare.net/motor/pymongo/api/motor/differences.html#acknowledged-writes
Short answer: Whatever code you execute in a callback to insert(), update(), etc., if those inserts or updates are safe, will see the data in MongoDB after the change has been applied. Any code you execute not in such a callback may run before or after MongoDB has applied the change.