Parece que você quer fazer um "upsert". O MongoDB tem suporte embutido para isso. Passe um parâmetro extra para sua chamada update():{upsert:true}. Por exemplo:
key = {'key':'value'}
data = {'key2':'value2', 'key3':'value3'};
coll.update(key, data, upsert=True); #In python upsert must be passed as a keyword argument
Isso substitui inteiramente o bloco if-find-else-update. Ele será inserido se a chave não existir e será atualizado se existir.
Antes:
{"key":"value", "key2":"Ohai."}
Depois:
{"key":"value", "key2":"value2", "key3":"value3"}
Você também pode especificar quais dados deseja gravar:
data = {"$set":{"key2":"value2"}}
Agora seu documento selecionado atualizará o valor de "key2" apenas e deixará todo o resto intocado.