lhs^=rhs assigns rhs to be the value of lhs, and associates the assignment with symbols that occur at level one in lhs.
f[g[x]]=value makes an assignment associated with f. f[g[x]]^=value makes an assignment associated instead with g.
UpSet associates an assignment with all the distinct symbols that occur either directly as arguments of lhs, or as the heads of arguments of lhs.
See The Mathematica Book: Section 2.4.10 and Section A.5.2.
See also: TagSet, UpValues.