I guess you're willing to make 30 000 inserts as fast as possible. You could start like 100 threads, and do 3 000 inserts from those threads - however for each thread you need a dedicated database session (a db connection) - otherwise you don't get any performance benefit.
Think about concurrency trough the whole chain
Thread or not? Actually, this depends on your database.
For example, Oracle allows you to execute inserts from muliple sessions https://dba.stackexchange.com/questions/16131/how-does-oracle-handle-multiple-concurrent-inserts-against-one-table It means that your threads can work together to send data as quickly as possible. It is a good idea to reduce commit rate, and commit your transaction only after 100-1000 inserts for speed.
However, things are not this easy on MS SQL https://social.msdn.microsoft.com/Forums/sqlserver/en-US/db00512d-0dc5-4bae-9ea4-7d6726d2d731/inserting-into-a-single-heap-table-from-multiple-sessions?forum=sqldatabaseengine and there are SQL engines which lock the whole table, so actually your inserts will be executed totally serially.
How many threads?
This again depends on your database. In production Oracle installations, it is a good idea to open not more than 20-100 sessions per application, so you shall not try making 1000 threads. Simply keeping up 1000 database connections would hurt both the database server, and likely your application too.
Optimize roundtrips
You shall notice that the insert time is mostly wasted on the individual calls. I.e. the 30 000 insert is 30 000 roundtrip to the database server. This takes a significant time. Unfortunately, Hibernate is super-inefficient also in this, so you can't do too much.
A good solution would be using JDBC batch mode, which works with Oracle remarkably well (giving 10-100x improvement compared to inserts), see http://viralpatel.net/blogs/batch-insert-in-java-jdbc/
Think about your problem
I am sure that inserting 30 000 things as a result of one operation is a bad idea :) Instead of improving insert speed, think about why do you need to insert 30 000 things? Do you insert a picture byte-by-byte?