def METHOD_NAME(self, tx: BaseTransaction, *, relax_assert: bool = False) -> None:
    """ Update a tx according to its children.
    """
    assert tx.storage is not None
    assert tx.hash is not None
    meta = tx.get_metadata()
    if meta.voided_by:
        if not relax_assert:
            assert tx.hash not in self.tx_last_interval
        return
    pi = self.tx_last_interval[tx.hash]
    min_timestamp = inf
    for child_hash in meta.children:
        if child_hash in self.tx_last_interval:
            child = tx.storage.get_transaction(child_hash)
            min_timestamp = min(min_timestamp, child.timestamp)
    if min_timestamp != pi.end:
        self._del_interval(pi)
        new_interval = Interval(pi.begin, min_timestamp, pi.data)
        self._add_interval(new_interval)