diff --git a/docs/query-language.md b/docs/query-language.md
index 666ba60bf..7c54c3ba8 100644
--- a/docs/query-language.md
+++ b/docs/query-language.md
@@ -139,7 +139,7 @@ SetColumnAttrs(, ,
**Result Type:** null
-SetColumnAttrs queries always return `null` upon success. Setting a value of `null`, without quotes, deletes an attribute. Note that, `frame` cannot be used as an attribute name.
+SetColumnAttrs queries always return `null` upon success. Setting a value of `null`, without quotes, deletes an attribute. To avoid confusion, `frame` cannot be used as an attribute name.
**Examples:**
diff --git a/executor.go b/executor.go
index 03ce03aaa..1507c3050 100644
--- a/executor.go
+++ b/executor.go
@@ -1040,6 +1040,8 @@ func (e *Executor) executeSetFieldValue(ctx context.Context, index string, c *pq
// Copy args and remove reserved fields.
args := pql.CopyArgs(c.Args)
delete(args, "frame")
+ // While frame could technically work as a ColumnAttr argument, we are treating it as a reserved word primarily to avoid confusion.
+ // Also, if we ever need to make ColumnAttrs frame-specific, then having this reserved word prevents backward incompatibility.
delete(args, columnLabel)
// Set values.