update Table._free to use autocommit check

`Table._free` method does not check for autocommit. When object goes out of scope `Table.__del__` is called => calls close method => calls `Table._free` => causes commit irrespective of whether user has set `autocommit = True ` or not. This patch checks for `self.autocommit` during `_free` to prevent commits from happening when autocommit is False.