It already inherits MongoWriteConcernException, there is no BC break here.
If you look at the code better, this BC guarantee is even tested as I changed the catch() block from global Exception to MongoWriteConcernException to make sure the inheritance was correct, and then dumped the exception name to make sure it triggered MongoDuplicateKeyException.

We don't want different exception class for every different error, but we do require the basic once.

Currently there is no way for you to figureout if the exception was your fault or the server fault, or network fault.
"Sucks to be you" is all the user knows.

We also need Authorization exception, and a wtimeout exception. That should be all