mysqlが重複する主キーに対して1062エラーコードをスローしているようです。 SQL例外のエラーコードを確認できます:
public static final int MYSQL_DUPLICATE_PK = 1062;
try{
//code that throws sql exception
} catch(SQLException e){
if(e.getErrorCode() == MYSQL_DUPLICATE_PK ){
//duplicate primary key
}
}
ベンダーが異なればPKの重複に対してエラーコードが異なる可能性があるため、このアプローチはクロスデータベースベンダーではないことに注意してください。