Intercepts assignment by the pre-1.11.0 Title-Case column names
(e.g., df[["Estimated TE"]] <- v) and stops with a migration
message pointing to the new snake_case name. This closes the gap
where a partial migration (RHS updated to new name, LHS still old)
would silently append a new column rather than overwriting the
renamed one. All other assignment falls through to the
data.frame method via NextMethod().