Jag stötte på exakt samma problem och det fanns ingen enkel lösning för <2.4, men sedan 2.4 har $setOnInsert operatör låter dig göra precis det.
db.collection.update( <query>,
{ $setOnInsert: { "firstTime": <TIMESTAMP> } },
{ upsert: true }
)
Se 2.4 release notes för setOnInsert för mer information.