Ändra din kod och ordna om körningarna enligt följande. Det borde fungera bra:
Statement statement = connection.createStatement();
statement.execute("insert into student values (3,'kamal')");
connection.commit();
Statement statement1 = connection1.createStatement();
statement1.execute("delete from student where student_id = 3");
connection1.commit();
Problemet är att tidigare exekverad infogningssats inte har begåtts ännu och att låset hålls på bordet när du försöker köra en ny deletesats och skapar en dödlägessituation i DB.