Gere o ObjectId antecipadamente, use-o na inserção e não será necessário que o banco de dados o retorne para você. O ObjectId não usa um número de sequência compartilhado para ser exclusivo, portanto, não importa se você gerar um antes de inserir ou recuperá-lo depois.
public ObjectId createThing() {
ObjectId result = new ObjectId();
BasicDBObject thingToInsert = new BasicDbObject();
thingToInsert.put('_id', result);
//set other fields here
collection.insert(thingToInsert);
return result;
}