I recently did a little tinkering with a very similar situation. I had an application that would insert anywhere from 1 to a couple thousand records into a MySQL database.
To demonstrate (to yourself), the connection pool behavior Magnus describes in his answer, you could whip up a quick application. With a button and on the click event, open (and then .close() ) a connection to your database, then click the button to "re-open" the connection a few times after that. (Make sure to give yourself some feedback so you know when (and if) .open() succeeded.) You'll notice the initial connection takes a few seconds, but subsequent attempts are very quick when the connection is grabbed from the pool.
Based on what my lead wanted, we ended up doing a 'bulk' insert by generating a big insert statement dynamically, for more of a "all or nothing" approach, rather than individual insert statements. At one point, I had two versions of our program using individual inserts, and also the bulk insert approach. For our situation, I didn't really see any noticable performance difference. (To be fair, there wasn't a ton of work being done either)