You have more limitations than just Java to worry about.
There's network bandwidth usage, hogging your database server CPU, filling up the database transaction log, JDBC performance for mass inserts, slowness while the database updates its indexes or generates artificial keys.
If your inputs get too huge you need to split them into chunks and commit the chunks separately. How big is too big depends on your database.
The way your your artificial keys get allocated can slow the process down, you may need to create batches of values ahead of time, such as by using a hilo generator.
Kicking off a bunch of threads and hammering the database server with them would just cause contention and make the database server work harder, as it has to sort out the transactions and make sure they don't interfere with each other.
Consider writing to some kind of delimited file, then run a bulk-insert utility to load its contents into the database. That way the database actually cooperates, it can suspend updating indexes and checking constraints, and sequences and transactions aren't an issue. It is orders of magnitude faster than JDBC.