Как правило, это не считается хорошим дизайном. Вы должны проверить наличие дубликатов ключей перед вставкой и полагаться на ограничения БД только как на «сеть безопасности».
Но если вам захочется это сделать, вам нужно поймать исключение SQLException. Затем вам нужно использовать атрибут SQLException (в частности ErrorCode и Number), чтобы проверить, является ли это нарушением PK.
Но в целом проверка точной причины SQLException является сложной задачей и зависит от используемой СУБД, поэтому это не очень хороший и надежный подход. Это одна из причин, почему это не рекомендуется (см. Выше).