Merger[op_, pos : _Integer | _String | _Key][{data_, operand_}] :=
MapAt[op@{#, operand} &, data, pos]
Merger[op_, pos_][{data_, operand_Association}] :=
Merge[{data, operand}, op]
Merger[op_, pos_][{data_, operand_}] :=
MapAt[op@{#, operand} &, data, pos]
ModifyParts[dataset_, pos_, operator_, operand_] :=
Fold[Merger, Apply[operator], Reverse@pos][{dataset, operand}]
ModifyParts[pos_, operator_, operand_][dataset_] :=
ModifyParts[dataset, pos, operator, operand]
ModifyParts[default, {"hts", All, "a"}, Times, <|"nb" -> 0,