def METHOD_NAME(self, shareable: Shareable, fl_ctx: FLContext) -> bool:
    if not self.assembler:
        self.assembler = fl_ctx.get_engine().get_component(self.assembler_id)
    contributor_name = shareable.get_peer_prop(key=ReservedKey.IDENTITY_NAME, default="?")
    dxo = self._get_contribution(shareable, fl_ctx)
    if dxo is None or dxo.data is None:
        self.log_error(fl_ctx, "no data to aggregate")
        return False
    current_round = fl_ctx.get_prop(AppConstants.CURRENT_ROUND)
    return self._accept_contribution(contributor_name, current_round, dxo, fl_ctx)