The decision was his. Sheeran said: “After Macklemore’s performances at my New Jersey shows, venues on my upcoming tour dates communicated that they would pull the shows if he was still supporting."
He was in a position to force the venues to pull the shows and put the responsibility on them, and he didn't do that.