Dúvidas com DataSource no tomcat

Olá pessoal,

Tenho uma tabela que guarda de chaves primarias e um objeto que faz um consulta e em seguida atualiza somando um ao campo e depois um outro objeto que faz uma inserção em outra tabela de produto, o problema é a inserção acontece duas vezes em ambas as tabelas, eu uso DataSource configurado no tomcat, alguém pode explicar o que acontece, se eu não chamar o objeto que traz a chave primaria o registro é inserido uma vez. Engraçado que o segundo registro só grava o código gerado na sequencia, já mudei de PreparedStatement para Statement.
Eu uso o código abaixo para inserir.
DataSource ds = ic.lookup();
Connection conn = ds.getConnection();
PreparedeStatement ps = conn.preparedStatemente(sql);

É como se o objeto que faz a busca da pk tivesse com a mesma instância do PreparedeStatemente, ou seja, DataSource pega o mesmo PreparedStatement. Eu fiz manuamente sem o DataSource o a execução é normal, já procurei em alguns lugares, e verifique que a instrução é pré-compilada, sera que é isso?

Muito obrigado!