def METHOD_NAME(
    self,
    num_ctrl_qubits: int = 1,
    label: Optional[str] = None,
    ctrl_state: Optional[Union[str, int]] = None,
):
    """Return a (multi-)controlled-RZ gate.
    Args:
        num_ctrl_qubits (int): number of control qubits.
        label (str or None): An optional label for the gate [Default: None]
        ctrl_state (int or str or None): control state expressed as integer,
            string (e.g. '110'), or None. If None, use all 1s.
    Returns:
        ControlledGate: controlled version of this gate.
    """
    if num_ctrl_qubits == 1:
        gate = CRZGate(self.params[0], label=label, ctrl_state=ctrl_state)
        gate.base_gate.label = self.label
        return gate
    return super().METHOD_NAME(num_ctrl_qubits=num_ctrl_qubits, label=label, ctrl_state=ctrl_state)