Conferir valores antes de salvar?

Estou fazendo uma aplicação simples para salvar dados no banco . Gostaria que o id fosse conferido antes de ser salvo, mas não sei como fazer isso, posso ter duas strings sql? Qual seria a maneira mais fácil de realizar isto?

public void cadastrar(Usuario user) 
{
	String sql= "insert into usuarios(id,nome, senha) values (?,?,?)";
		
	try {
	PreparedStatement prepara=con.prepareStatement(sql);
	prepara.setInt(1, user.getId());
    //aqui gostaria de colocar um select que consultasse o id, 
    //se ele já existisse, colocar a mensagem/*
	prepara.setString(2, user.getNome());
	prepara.setString(3, user.getSenha());
	prepara.execute();
	prepara.close();
	} catch (SQLException e) {
		
		e.printStackTrace();
	}
}

Sim é possível ex:

public static void main(String[] args) throws Exception {
      Class.forName("org.apache.derby.jdbc.ClientDriver");
      Connection con = DriverManager.getConnection(
         "jdbc:derby://localhost:1527/testDb","name","pass");
      
      Statement stmt = con.createStatement(
         ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);
      
      String insertEmp1 = "insert into emp values(10,'jay','trainee')";
      String insertEmp2 = "insert into emp values(11,'jayes','trainee')";
      String insertEmp3 = "insert into emp values(12,'shail','trainee')";
      con.setAutoCommit(false);
      
      stmt.addBatch(insertEmp1);
      stmt.addBatch(insertEmp2);
      stmt.addBatch(insertEmp3);
      
      ResultSet rs = stmt.executeQuery("select * from emp");
      rs.last();
      System.out.println("rows before batch execution= "+ rs.getRow());
      stmt.executeBatch();
      con.commit();
      
      System.out.println("Batch executed");
      rs = stmt.executeQuery("select * from emp");
      rs.last();
      System.out.println("rows after batch execution = "+ rs.getRow());
   }

Com prepared statement seria assim:

 preparedStatement.setInt(1, 1);
 preparedStatement.addBatch();

 preparedStatement.setInt(1, 1);
 preparedStatement.addBatch();
 preparedStatement.executeBatch();

Veja:
https://docs.oracle.com/javase/7/docs/api/java/sql/PreparedStatement.html#addBatch()

Fontes:
https://www.tutorialspoint.com/javaexamples/jdbc_executebatch.htm

Desculpe, não entendi o seu código, mas obrigada!
No caso se no banco o campo é PK precisa fazer a validação ou vai dar exception quando o user tentar cadastrar o mesmo dado?

Recomendo ver este aqui, ele lhe ajudará melhor e estará em português

Respondendo sua pergunta, se é uma PK vai dar uma exception sim!

Obrigada, querido me ajudou muito ; )