Welcome Keshav!
I believe this is a bug. Note the trigram index on the field with an @upsert tag. The @upsert tag tries to bring in the value of data being stored into the conflict detection mechanism. I believe the trigram index is comparing parts of the value (“Smart Opt1, Smart Opt2”) and finds matches.
I was able to get two of the transactions to go through after removing the trigram index. Could you please try your go routines after removing the trigram index and let us know?
Edit
After further review, we found that this is not a bug and is actually working as designed.