<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def track_metric(self, unique_identifier, metric, date=None, inc_amt=1, **kwargs):
 """ Tracks a metric for a specific ``unique_identifier`` for a certain date. The redis backend supports lists for both ``unique_identifier`` and ``metric`` allowing for tracking of multiple metrics for multiple unique_identifiers efficiently. Not all backends may support this. :param unique_identifier: Unique string indetifying the object this metric is for :param metric: A unique name for the metric you want to track. This can be a list or a string. :param date: A python date object indicating when this event occured. Defaults to today. :param inc_amt: The amount you want to increment the ``metric`` for the ``unique_identifier`` :return: ``True`` if successful ``False`` otherwise """

        metric = [metric] if isinstance(metric, basestring) else metric
        unique_identifier = [unique_identifier] if not isinstance(unique_identifier, (types.ListType, types.TupleType, types.GeneratorType,)) else unique_identifier
        results = []
        if date is None:
            date = datetime.date.today()
        with self._analytics_backend.map() as conn:
            for uid in unique_identifier:

                hash_key_daily = self._get_daily_metric_key(uid, date)
                closest_monday = self._get_closest_week(date)
                hash_key_weekly = self._get_weekly_metric_key(uid, date)

                for single_metric in metric:
                    daily_metric_name = self._get_daily_metric_name(single_metric, date)
                    weekly_metric_name = self._get_weekly_metric_name(single_metric, closest_monday)
                    monthly_metric_name = self._get_monthly_metric_name(single_metric, date)

                    results.append(
                        [
                            conn.hincrby(hash_key_daily, daily_metric_name, inc_amt),
                            conn.hincrby(hash_key_weekly, weekly_metric_name, inc_amt),
                            conn.hincrby(hash_key_weekly, monthly_metric_name, inc_amt),
                            conn.incr(self._prefix + ":" + "analy:%s:count:%s" % (uid, single_metric), inc_amt)
                        ]
                    )

        return results