Похоже, что вы совершаете или откатываете транзакцию на каждом шаге цикла for.Вероятно, вам нужно (1) начать новую транзакцию для каждого пользователя, например,
Using sqlConnection = New SqlConnection(ConfigurationManager.ConnectionStrings("ConnectionString").ConnectionString)
sqlConnection.Open()
For Each user In users
Using transaction = sqlConnection.BeginTransaction(IsolationLevel.ReadCommitted)
...
или (2) только зафиксировать или откатить транзакцию в конце, например,
Using sqlConnection = New SqlConnection(ConfigurationManager.ConnectionStrings("ConnectionString").ConnectionString)
sqlConnection.Open()
Using transaction = sqlConnection.BeginTransaction(IsolationLevel.ReadCommitted)
Try
For Each user In users
myDataWriteMethod(user, conn, tr)
Next
Catch ex As Exception
tranaction.rollback()
End Try
transaction.commit()
End Using
End Using
Обратите внимание, что я не программист VB.NET, поэтому мой синтаксис может быть неправильным.