Parece que quieres hacer un "upsert". MongoDB tiene soporte incorporado para esto. Pase un parámetro adicional a su llamada update():{upsert:true}. Por ejemplo:
key = {'key':'value'}
data = {'key2':'value2', 'key3':'value3'};
coll.update(key, data, upsert=True); #In python upsert must be passed as a keyword argument
Esto reemplaza su bloque if-find-else-update por completo. Se insertará si la clave no existe y se actualizará si existe.
Antes:
{"key":"value", "key2":"Ohai."}
Después:
{"key":"value", "key2":"value2", "key3":"value3"}
También puede especificar qué datos desea escribir:
data = {"$set":{"key2":"value2"}}
Ahora su documento seleccionado actualizará el valor de "key2" solamente y dejará todo lo demás intacto.