Si está utilizando WriteConcern.ACKNOWLEDGED (que creo que también es SAFE ) no necesita contaminar su código con la comprobación de errores.
Para ACKNOWLEDGED , el controlador emitirá automáticamente un getLastError comando automáticamente y genera una excepción si algo sale mal, por ejemplo, una infracción de índice duplicado.
A partir de la versión 2.10 del controlador Java, el problema de escritura predeterminado es ACKNOWLEDGED
EDITAR
No deberías hacer esto, pero en cualquier caso:
El insert el método de hecho devuelve WriteResult . Si es getError() es null , todo está bien, de lo contrario, devuelve algo como E11000 duplicate key error index:... . Para que esto funcione, deberá usar WriteConcern.UNACKNOWLEDGED