trenner
committed
on 30 Jul 19
use transaction to avoid duplicate key conflicts