Instrução preparada para Java não executando

Eu criei um pequeno programa de 3 camadas, consistindo em: front end -> servlet -> database.

Front end Eu entro em alguns detalhes em um formulário. Eles são passados ​​para um servlet, que renderizará alguns HTML e exibirá os valores inseridos no formulário, além de chamar uma classe DatabaseHelper. O DatabaseHelper então conecta e insere esses mesmos valores em uma tabela.

Eu sei que os valores estão sendo passados ​​para a classe servlet ok, como eles estão sendo exibidos no HTML. Portanto, o problema deve estar dentro da declaração preparada. O problema é que não consigo ver nenhuma falha na declaração em si. Quando eu consultar a tabela em si, não há dados lá.

A conectividade do banco de dados é funcional, pois posso inserir valores em um banco de dados usando instruções codificadas, mas não uma instrução preparada.

Aqui está uma olhada na declaração que estou usando. Qualquer conselho é muito apreciado.

    public void addRegisterDetails(String name, String email, String country, String password, ){
    try{ 
        String driver = "com.mysql.jdbc.Driver";    
        Class.forName(driver).newInstance();
        // Make db connection
        con = DriverManager.getConnection(url, USERNAME, PASSWORD);   
        st  = con.createStatement();


        String query = " INSERT INTO user_information (name, email, country, password)" + " VALUES (?, ?, ?, ?)";
        PreparedStatement preparedStmt = con.prepareStatement(query);
        preparedStmt.setString (1, name);
        preparedStmt.setString (2, email);
        preparedStmt.setString (3, country);
        preparedStmt.setString (4, password);
        preparedStmt.execute();

    }catch(ClassNotFoundException ex) {
        System.out.println(ex);
    }catch(Exception e){
         e.printStackTrace();
    }
}

Definição de tabela

id | nome | email | país | senha

all VARCHAR exceto o id, que é do tipo INT.