public void insertUser() {
        PreparedStatement st = null;
        String q = "INSERT INTO users SET email= ?, password = MD5(?), first_name = ?, last_name = ?";
        try {
            conn = dbconn.getConnection();
            conn.setAutoCommit(false);
            st = conn.prepareStatement(q);
            st.setString(1, this.email);
            st.setString(2, this.password);
            st.setString(3, this.firstName);
            st.setString(4, this.lastName);
            st.executeUpdate();
            insertUserRoles(this.email, this.role, conn);
            conn.commit();
        } catch (SQLException e) {
            e.printStackTrace();
            try {
                conn.rollback();
            } catch (SQLException o) {
                o.printStackTrace();
            }
        } finally {
            try {
                conn.close();
                st.close();
            } catch (SQLException e) {
                System.out.println("Unable to close connection");
            }
        }
    }