If I simply have "$dbh->commit" following the For loop, is that effectively the same as explicitly using transactions?
No; BEGIN WORK (or BEGIN TRANSACTION or just plain BEGIN) starts a transaction in SQL. Then (normally after 1 or more insert/delete/update's) COMMIT commits the transaction (or, when an error occurs, ROLLBACK rolls the transaction back to the state just before the BEGIN).
See DBI's begin_work
(I don't use SQLite; in the above I am assuming SQLite does this the same way that other (RDBMS) databases do)