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