Eu tive exatamente o mesmo problema aqui :
func GetPageAfterUpdate(dp model.DbProvider, id int, update int, page *Page) (err error) {
tx := dp.DB().Begin()
err = tx.Exec(`set transaction isolation level repeatable read`).Error
if err != nil {
tx.Rollback()
return
}
E é exatamente gorm com pg.