Sim, existe, em uma chamada segura (ou getLastError) a função de atualização retornará um array com um campo upsert e um campo updatedExisting.
Você pode ler a versão PHP disso aqui:http://php.net/manual/en/mongocollection.insert.php na parte inferior.
Como diz na documentação sobre
upserted
:
Se ocorrer um upsert, este campo conterá o campo _id do novo registro. Para upserts, este campo ou updatedExisting estarão presentes (a menos que ocorra um erro).
Então upserted contém o
_id
do novo registro se uma inserção foi feita ou incrementará updatedExisting
se ele atualizou um registro. Tenho certeza de que uma coisa semelhante aparece em todos os drivers.
Editar
Na verdade, será um booleano no
updatedExisting
campo de true
ou false