We have Put constructors which take ts param
eg: Put(byte row, long ts)
When one creates a Put this way and add columns to it, without giving a specific TS, these individual cells will honour this Put object's TS. One can use add API which takes a TS and so can override TS for this Cell.
For delete also we have similar constructors with and without TS params and delete**() APIs same way as add(). But delete**() APIs (without taking a specific TS) is not honouring the Delete object's TS.