Tratamento de execeções usando JDBC

Posso estar enganando (bem provavel).

Primeiro o JDBC atual é o 3.0?
Segundo o JDBC que “sairia” no release 1.6 (6) seria o 4.0?
Esse 4.0 “resolveria” os problemas com as execeções genéricas?

Bem, quando se trabalha com JDBC 3.0 (no java 6), esses blocos jdbc’s lançam a execeção SQLException (acredito que seja o nome correto)… Pensando nisto um amigo me disse que seria legal que sempre ao inserir um novo registro eu fizesse uma consulta antes para verificar se já existe e lançar uma execeção…

Eu achei um tanto quanto estranho essa solução.
Qual seria uma solução melhor ou viajei ?

ps: a conversa tem a premissa que é inviavel tratar a SQLException (sql code, java code).