Hi Greg,
@@@ is an operator form of Apply[f,exp,{1}], which replaces the Heads of exp at level 1 with f. So it is like @@, but acts one level down in the expression. Set@@@exp then replaces the heads of exp one level down with Set. And Set is the operator we usually use in the infix form: x=y means Set[x,y].
If we look at the full form of sol we get: List[List[Rule[a,Plus[10,Times[-1,Power[b,2]]]]]]
First@sol removes one level to give List[Rule[a,Plus[10,Times[-1,Power[b,2]]]]]
So Set@@@First@sol replaces the Rule with Set. Mathematica evaluates this and this results in executing a = 10-b^2, so now a has that value and can be plotted by evaluating it with a range of values for b.
Alternatively, you could not use that statement, but could plot directly using the rule which specifies the replacement for a.
Plot[a /. sol, {b, -4, 4}, AxesLabel -> {"b", "a"}]
Note that this does not set a to a value, but makes the substitution only for the purpose of plotting.
Best regards, David