Upsert Will duplicate nodes be generated in the process of multithreading data update using the upsert block

I suggest you use the same 100 threads, but write up a conditional upsert block instead of simple mutations. You should see a better result.
Pseudo code for conditional upsert:
check for node with topic_type1
if not present
create node

Please see if it helps. Here is the python documentation for conditional upsert.