Intercepts column assignment by the pre-1.11.0 Title-Case names
and stops with a migration message. The check fires when an old
name appears in the column-selector position. Row-only assignment
(df[i, ] <- v) and assignment by new column names fall through
to the data.frame method via NextMethod().
Details
The nargs() distinction here mirrors the read-side [.catt_df,
but the threshold shifts by one because [<- carries an extra
positional value argument: df[i] <- v has nargs() == 3 and
i is the column selector; df[i, j] <- v and df[i, ] <- v have
nargs() == 4 and j (if non-missing) is the column selector.