A simple JDBC - Commit & Rollback related question!

From the book: Java Practice Questions: Oracle Certified Professional, Java SE 7 Programmer (OCPJP).

Given..
public class Test {
    public static void main(String[] args) {
        Properties prop = new Properties();
        props.put("user","username");
        props.put("password", "password");
 
        String sql = "UPDATE users SET email = ? WHERE user_id = 1";
 
        try (
            Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/db", props));
            PreparedStatement stmt = con.prepareStatement(sql)
        ) {
            con.setAutoCommit(false);
            stmt.setString(1, "email1");
            stmt.execute();
            Savepoint s1 = con.setSavepoint();
 
            stmt.setString(1, "email2");
            stmt.execute();
            Savepoint s2 = con.setSavepoint();
 
            con.rollback(s1); // 1
            // con.rollback(s2) // 2
        } catch (SQLException e) {
            // Swallow..
        }
    }
}

Which of the following are TRUE?
A. The final value of the email column is "email1".
B. The final value of the email column is "email2".
C. If we remove the line con.setAutoCommit(false); an exception will be thrown.
D. If we comment the line marked by //1 and uncomment the line marked by //2, an exception will be thrown.
E. If we just uncomment the line marked by //2, an exception will be thrown.