I have multiple EXECUTE IMMEDIATE commands within one oracle procedure.
EXECUTE IMMEDIATE \'DELETE FROM tbl1\';
EXECUTE IMMEDIATE \'INSERT INTO tbl1...\';
COM
Commit is not required after every EXECUTE IMMEDIATE. Certain statements do NOT require a commit; for example, if you truncate a table with TRUNCATE. The truncation is done and there is no need for a commit. no ROLLBACK either. You need to know that COMMIT and ROLLBACK are session attributes. All uncommitted work within the current transaction are committed or rolled back - not just the statement executed by the EXECUTE IMMEDIATE.
The only times that you're really forced to commit, other thasn at the end of a business transaction, are:
As horsey comments, the correct point to commit at is when the business transaction is complete. Otherwise, you need to be writing yourself some code to detect and fix partially completed and commited transactions that have left the database is a logically inconsistent state (eg. An INVOICE record exists without any INVOICE_DETAIL records).