In a J2EE environment it is correct to let the app server control the transaction and stored proc to do all database DMLs. So you wont see any commit or rollback inside the stored proc.
You need to get the SQL that are causing deadlock. One could be where you are updating a key column(s) refered by a child table. Other can be when you are not doing updates in the same order in two different stored procs. e.g. one procedure is updating parent first and then child table an dother one is updating child table first and then parent table on same set of parent and child table.
Also make sure that you have indexes on the FKs if they are being updated.
Sandeep -- http://www.freelists.org/webpage/oracle-l