def METHOD_NAME(self, n_jobs=-1, weighted=False):
    """
    Method to estimate the model parameters (CPDs) using Maximum Likelihood
    Estimation.
    Parameters
    ----------
    n_jobs: int (default: -1)
        Number of jobs to run in parallel. Default: -1 uses all the processors.
    weighted: bool
        If weighted=True, the data must contain a `_weight` column specifying the
        weight of each datapoint (row). If False, assigns an equal weight to each
        datapoint.
    Returns
    -------
    Estimated parameters: list
        List of pgmpy.factors.discrete.TabularCPDs, one for each variable of the model
    Examples
    --------
    >>> import numpy as np
    >>> import pandas as pd
    >>> from pgmpy.models import BayesianNetwork
    >>> from pgmpy.estimators import MaximumLikelihoodEstimator
    >>> values = pd.DataFrame(np.random.randint(low=0, high=2, size=(1000, 4)),
    ...                       columns=['A', 'B', 'C', 'D'])
    >>> model = BayesianNetwork([('A', 'B'), ('C', 'B'), ('C', 'D')])
    >>> estimator = MaximumLikelihoodEstimator(model, values)
    >>> estimator.get_parameters()
    [<TabularCPD representing P(C:2) at 0x7f7b534251d0>,
    <TabularCPD representing P(B:2 | C:2, A:2) at 0x7f7b4dfd4da0>,
    <TabularCPD representing P(A:2) at 0x7f7b4dfd4fd0>,
    <TabularCPD representing P(D:2 | C:2) at 0x7f7b4df822b0>]
    """
    parameters = Parallel(n_jobs=1, prefer="threads")(
        delayed(self.estimate_cpd)(node, weighted) for node in self.model.nodes()
    )
    return parameters