The second example yields the same result on my machine.
Could you make sure to reinitialize b and check the result again?
The first call raises an error, since you have a dimension mismatch.
If you expand indices and updates, the code will also return the same values:
array = np.array([[1,2,3],
                  [4,5,6]],
                 dtype=np.float32)

b = torch.tensor(array, dtype=torch.float32)

indices = np.array([[0,0,0],
                    [0,1,1]],
                    dtype=np.int)
updates = np.array([[1,2,3],
                    [4,5,6]], 
                   dtype=np.float32)

print(b.scatter_add(0, torch.from_numpy(indices), torch.from_numpy(updates)))

for i in range(2):
    for j in range(3):
        b[indices[i,j]][j] += updates[i,j]
print(b)

> tensor([[ 6.,  4.,  6.],
          [ 4., 10., 12.]])
> tensor([[ 6.,  4.,  6.],
          [ 4., 10., 12.]])