Ако използвате WriteConcern.ACKNOWLEDGED (което според мен също е SAFE ) не е нужно да замърсявате кода си с проверка на грешки.
За ACKNOWLEDGED , драйверът автоматично ще издаде getLastError команда автоматично и предизвиква изключение, ако нещо се обърка, например нарушение на дублиран индекс.
Започвайки от v2.10 на Java драйвера, проблемът за запис по подразбиране е ACKNOWLEDGED
РЕДАКТИРАНЕ
Не трябва да правите това, но във всеки случай:
insert методът наистина връща WriteResult . Ако е getError() е null , всичко е наред, в противен случай връща нещо като E11000 duplicate key error index:... . За да работи това, ще трябва да използвате WriteConcern.UNACKNOWLEDGED