Cadastro duplicado

Estou aprendendo java e não estou sabendo tratar erros. Tenho um cadastro e esta tudo ok mas não sei como retornar ao usuário quando ele tentar salvar duas vezes o cadastro com o mesmo CPF queria que retornasse ao usuário que o cadastro já existe. O código que estou usando esta assim:

AutoIncremento id = new AutoIncremento();

    DadosUsuario usuario = new DadosUsuario();
    usuario.setIdUsuario(id.idUsuario());
    usuario.setNomeUsuario(txtNome.getText());
    usuario.setCpfUsuario(txtCPF.getText());
    usuario.setLoginUsuario(txtLogin.getText());
    usuario.setSenhaUsuario(txtSenha.getText());
    usuario.setPerfilUsuario(txtPerfil.getText());

    UsuarioSQL add = new UsuarioSQL();
    add.adicionar(usuario);

    
    public void adicionar(DadosUsuario usuario) {
    
    Connection conexao = ConexaoDB.getConexao();
    
    String sql = "INSERT INTO tbusuarios(idusuario, nomeusuario, cpfusuario, loginusuario, senhausuario, perfilusuario) VALUES (?,?,?,?,?,?)";
    
    try {
        PreparedStatement smt = conexao.prepareStatement(sql);
        smt.setInt(1, usuario.getIdUsuario());
        smt.setString(2, usuario.getNomeUsuario());
        smt.setString(3, usuario.getCpfUsuario());
        smt.setString(4, usuario.getLoginUsuario());
        smt.setString(5, usuario.getSenhaUsuario());
        smt.setString(6, usuario.getPerfilUsuario());
        smt.execute();
        
        ConexaoDB.close(conexao, smt);   
        
    } catch (SQLException ex) {
        Logger.getLogger(UsuarioSQL.class.getName()).log(Level.SEVERE, null, ex); 
        
        ConexaoDB.close(conexao);
    } 

Agradeço pela ajuda.

O que você pode fazer é pegar o CPF digitado pelo cliente, pesquisar ele na tabela e ver se já existe uma entry com aquele dado. Se existir essa entry você retorna um Alert com o texto desejado, se não existir você salva os novos dados.