push back inserts a new row at the bottom of the array, which is what you need here, but it doesn't set all the values, instead you would see armor.x,armor.x,armor.x. So to set the Y and Z in columns 1 and 2, they are using set at X,Y.
self.width is the number of rows and since the rows likely start at 0 index it needs to be self.width-1, basically self.width-1 is the number of the bottom row, the one you just added.
So the logic above is saying - insert a new row (push back a value) which sets (new row,0) to armor.x, then set (new row,1) to Y and (new row,2) to Z.