Is it possible to mutate with query like in upsert?

Below query inserts a new record. I tested and confirmed.

upsert  {
    query{
        q(func: type(message)) @filter(eq(message-read, false))
        {
          v as uid 
        }
    }
    mutation {
      set {
      	uid(v) <dgraph.type> "message" .
      	uid(v) <isRead> "true" . 
      }
    }
}

I found a workaround with conditional mutation.

upsert  {
    query{
        q(func: type(message)) @filter(eq(message-read, false))
        {
          v as uid 
        }
    }
    mutation @if(gt(len(v),0))  {
      set {
      	uid(v) <dgraph.type> "message" .
      	uid(v) <isRead> "true" . 
      }
    }
}

However, the upsert is not a good naming as it confuses query writer.
I would like to have an update mode without giving an if mutation condition ensuring there is no insert.