Abort-oriented protocols for hard real-time systems were proposed mainly to cope with the situation when block-at-most-once property provided by pure locking protocols such as priority ceiling protocol and stack resource protocol is incapable of scheduling a given transaction set due to excessive blocking. The underlying principle is to abort a transaction if it causes other higher-priority transactions unschedulable due to excessive blocking. By aborting the lower-priority transaction, what we gain is reduced blocking for higher-priority transactions, but what we must pay for is to re-execute the aborted lower-priority transaction. To guarantee schedulability for the whole transaction set, we must put an upper bound on the re-execution costs. In this paper, we use a tree-structured transaction framework adapted from Chakravarthy et al. (1998) and we roll back aborted transactions partially in an attempt to more accurately characterize and to reduce re-execution costs for aborted transactions.