You don't need either. Start a transaction, make all your inserts (parent table first, child tables afterwards), end the transaction with COMMIT
, and you are done.
Use stored procedures if you want to bundle this and ensure some kind of consistency (such that there is always at least one child table for a parent table for instance). But this can get complicated. Say you want to insert a new product with all its colors, sizes, suppliers and selling markets. Certain colors/sizes will be supplied by one or more suppliers and not the others, same with selling markets. To show these relations we usually use tables, but now you'll have to put these into parameters somehow in order to get them inserted into tables. I was told that some people have all their database writes in procedures. This is probably possible but has its limits.
As to auto-inserts by triggers: You can use them to log data, so as to get a history or the like, but you don't use them to insert business data. Think of an order with its positions: You insert the order header (order date, client number, ...), but how shall the trigger know which items were ordered? Or vice versa: You insert an order position (item number, price) and want the header be created automatically, but how shall the trigger know the client number? Triggers are not appropriate for such things.
As mentioned: Usually you'd just work with plain SQL in transactions and that's it.