Upravte svůj kód a změňte pořadí provádění následovně. Mělo by to fungovat dobře:
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();
Problém je v tom, že dříve provedený příkaz insert ještě není potvrzen a drží zámek na stole, když se pokoušíte provést nový příkaz delete, což vytváří situaci uváznutí v DB.