Задачу решил, но кое-что осталось покрытым мраком. Почему, когда потоки в resultMap добавляют свои значения, не происходит ерунды? Разве не нужно добавить synchronyzed для этого мапа? Все потоки получается имеют одинаковый доступ туда, но конфликтов не происходит