According to your explanation - the feature you are looking for is available in Caché

For the use with DeepSee there was a class parameter introduced to allow synchronization  of tables.

DSTIME = 1 creates a log in ^OBJ.DSTIME to trace INSERT, UPDATE and DELETE of rows / objects.
see the general description and details on ^OBJ.DSTIME

This is a design feature.

Ensemble was designed to work on a worldwide base independent of time zones, daylight saving nonsense and other local time deviations with a consistent monotone growing sequence of time.
So the use of UTC is spread everywhere across the code and there is just no single place to switch it on or off.

So if you want to see logs and other info in local time your only chance is to rewrite the pages or to modify the original code in ENSLIB without any guaranty for eventual unexpected side effects.

My personal opinion: It's not worth the effort.

eXecute command is sensible to variable scoping
in addition control of allowed operates is required.
this small method gives you an easy to maintain code.

ClassMethod Operate(var1 = ""op As %String = "",var2 = "") As %Boolean {
 goto $case(op
         ,"<":lt
         ,">":gt
         ,"=":eq
         ,"<>":ne
         ,:fail
         )
fail quit 0
lt   quit var1 < var2
gt   quit var1 > var2
eq   quit var1 = var2
ne   quit (var1 '= var2)
}

.

and you are free to use any naming of your operator you allow ( & , $ , @, GOOFY, DAISY, DUFFY, DONALD, .. )

you mix up 2 variants of indirection

W @B
S @("C="_B)

These both are ARGUMENT indirections, where the arguments of WRITE or SET are replaced.

But

S C=@B

is a NAME indirection where the name of a variable or global is expected.
$P(A,S,2) is definitely no a variable or global name.

Docs on Indirection is quite verbose and shows the limits. 

Most important: this is a runtime feature and not a compile-time feature!

You can achieve this using TRANSACTIONS in combination with ISOLATION LEVELS

BUT: as with the  LOCK in COS you depend on the other players to take notice of your isolation.  
If they don't care you are lost since this is no absolute locking.
COS has the option to lock your record ahead - but you depend on the other participants.

An other option is to use ROWVERSION  to protect your record. (optimistic locking)
If someone has changed your record under cover you get alerted on the fact.

You may create your private row count by group. 

Class DC.any [ Abstract ]
{
ClassMethod MyVid(group = "") As %String [ SqlName = MyVid, SqlProc ]
{
 if group="" kill %myVid quit 0  ;;initialize it
  quit $I(%myVid(group))
}

 .

how to use it:

SELECT DC.MyVid(company) RowNumber, Company,Company->Name, Name
FROM Sample.Employee where DC.MyVid()=0 /* static condition for init */
order by 2

 .

looks like this:

RowNumber

Company

Name

Name

1

1

O' KwalLateral Group Ltd.

Moon,Mary Q.

2

1

O' KwalLateral Group Ltd.

Ximines,Alice Z.

3

1

O' KwalLateral Group Ltd.

Malynko,Greta H.

4

1

O' KwalLateral Group Ltd.

Lubbar,Emily Q.

1

2

InterPlex Holdings Inc.

Tesla,Kenny W.

2

2

InterPlex Holdings Inc.

Jones,Valery N.

3

2

InterPlex Holdings Inc.

Baker,Samantha D.

1

3

GlobaSys LLC.

Quixote,Marvin C.

2

3

GlobaSys LLC.

Xerxes,Violet Y.

3

3

GlobaSys LLC.

Adams,Kim W.

4

3

GlobaSys LLC.

Ubertini,Roberta N.

5

3

GlobaSys LLC.

Jackson,Buzz V.

6

3

GlobaSys LLC.

Clinton,Keith C.

7

3

GlobaSys LLC.

Isaksen,Juanita T.

8

3

GlobaSys LLC.

Solomon,Imelda Z.

1

4

SynerMatix Associates

Humby,Olga A.

2

4

SynerMatix Associates

Orwell,Maureen R.

3

4

SynerMatix Associates

O'Donnell,Ed Q.

4

4

SynerMatix Associates

Orlin,Mary D.

5

4

SynerMatix Associates

Vanzetti,Pam V.

6

4

SynerMatix Associates

Noodleman,Chris O.