JDBC transactions are managed by the database via the Database Connection. EJB transactions are managed by EJB container and tries to combine several external transactions (eg JDBC) in a single EJB transaction context. This is a bit complicated and gets into things like 'two phase commits' and 'distributed transactions', but it is a thing the EJB container does for you.
Personally: If you are using EJBs then use EJB transactions, otherwise stick to JDBC transactions.