Genere el ObjectId antes, úselo en la inserción y no será necesario que la base de datos se lo devuelva. ObjectId no usa un número de secuencia compartido para ser único, por lo que no importa si genera uno antes de insertarlo. o recuperarlo después.
public ObjectId createThing() {
ObjectId result = new ObjectId();
BasicDBObject thingToInsert = new BasicDbObject();
thingToInsert.put('_id', result);
//set other fields here
collection.insert(thingToInsert);
return result;
}