multiple calls to procedure optimization
High CPU usually implies SELECT with an inadequate index.

You mentioned inserts -- Yes, INSERTing 100 row in a single statement runs about 10 times as fast as 100 separate INSERT statements.  This is largely because of various overhead things that involve the CPU.  So, that should cut back on the CPU.

If you are doing any "normalization", consider doing it before entering the big transaction.  Ditto for anything else that might be "idempotent".